package com.cn.wanxi.thread.phone;

import redis.clients.jedis.Jedis;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 * 手机100部
 */
public class MyPhone implements Runnable {
    // 手机的数量
    private int phoneNum = 100;

    @Override
    public void run() {
// 因为我们不知道什么时候预定完，所以需要设定一个条件退出

        while (true) {
//            try {
//                Thread.sleep(100);//可以达到效果，但是，等待的时间太长
////                万一某一线程在里面呆了不止100毫秒
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//            synchronized ("AS") {
            Lock lock = new ReentrantLock();//对不同的runable传入同一个lock
            lock.lock();
//            Jedis jedis = new Jedis();
//            jedis.setex("aa", 100, "fdas");



            if (phoneNum > 0) {
                System.out.println(341);
//                jedis.expire("aa", 100);
                System.out.println(Thread.currentThread().getName() + "卖出了一部手机，还剩余" + --phoneNum + "部手机");
            } else {
                System.out.println("很遗憾，手机已经全部预定完，请下次再来");
                return;
            }
//            jedis.get("aa");
            lock.unlock();
//            }

        }

    }
}